package day7;

/*
* 多态中成员属性方法的特点
* */
public class Demo2 {
    public static void main(String[] args) {
        //父类引用指向子类对象
        Demo2Fu demo2Fu = new Demo2Zi();

        //多态中对于子父类同名属性来说，调用的是父类的属性
        System.out.println(demo2Fu.num);

        //多态中对于子父类同名方法来说，调用的是子类的方法
        demo2Fu.show();

        //调用父类中特有的方法
        demo2Fu.showFu();

        //多态无法调用子类特有的方法或属性，只能调用父类中存在的成员
//        demo2Fu.numZi;
//        demo2Fu.showZi();
    }
}

//父类
class Demo2Fu{

    int num = 1;

    public void show(){
        System.out.println(num);
    }

    //父类特有的方法
    public void showFu(){
        System.out.println("父类中的方法:"+num);
    }
}
//子类
class Demo2Zi extends Demo2Fu{

    int num = 5;

    //特有属性
    int numZi = 100;

    @Override
    public void show(){
        System.out.println(num);
    }

    public void showZi(){
        System.out.println("子类中的特有方法"+num);
    }
}


